import java.util.ArrayList;


public class TransacaoManager {
	
	public static ConjuntoTransacoes transacoes = new ConjuntoTransacoes();;

	public static void readTransactions()
	{
		ArrayList<String> linhas = LerDoArquivo.ler("");
		for (int i = 0; i < linhas.size(); i++) {
			Transacao transacao = new Transacao(ExtrairTransacoes.idTransacao(linhas.get(i)));
			transacao.setTimestamp(System.nanoTime());
			ArrayList<Operacao> operacoes = ExtrairTransacoes.separarOperacoes(linhas.get(i));
			transacao.setOperacaoList(operacoes);
			transacoes.adicionarTransacao(transacao);
			System.out.println(transacao);
		}
	}
	
	public static void schedule() {
		/*for (int i = 0; i < transacoes.length(); i++) {
			Transacao tx = transacoes.getTransacaoByIndex(i);
			ArrayList<Operacao> operacoes = (ArrayList<Operacao>) tx.getOperacaoList();
			
			for (Operacao op : operacoes)
			{
				if (Scheduler.tsBasico(tx, op.getDado(), op.getOperacaoTipo()) == -1)
				{
					i += -1;
					break;
				}
			}
		}*/
		int cont;
		do {
			cont = 0;
			for (int i = 0; i < transacoes.length(); i++) {
				Transacao tx = transacoes.getTransacaoByIndex(i);
				Operacao op = tx.getFirst();
				if (op != null)
				{
					if (Scheduler.tsBasico(tx, op.getDado(), op.getOperacaoTipo()) == -1)
					{
						i--;
						continue;
					}
					cont++;
				}
			}
		}
		while (cont != 0);
	}
	
}
